package com.magold.context;

import org.andengine.audio.music.MusicManager;
import org.andengine.audio.sound.Sound;
import org.andengine.audio.sound.SoundManager;
import org.andengine.opengl.font.FontManager;
import org.andengine.opengl.shader.ShaderProgramManager;
import org.andengine.opengl.texture.TextureManager;
import org.andengine.opengl.vbo.VertexBufferObjectManager;

import android.content.res.AssetManager;

import com.magold.skill.cast.AttacherManager;
import com.magold.sound.ISoundNotifier;

public interface IContext {
	public VertexBufferObjectManager getVertexBufferObjectManager();
	public AssetManager getAssets();
	public IFixedEngine getEngine();
	public FontManager getFontManager();
	public TextureManager getTextureManager();
	public ShaderProgramManager getShaderProgramManager();
	public SoundManager getSoundManager();
	public MusicManager getMusicManager();
	
	public void setAttacherManager(AttacherManager pAttacherManager);
	
	/**
	 * 
	 * @return null if current context didn't need an {@link AttacherManager}
	 */
	public AttacherManager getAttacherManager();
	
	public ISoundNotifier getSoundNotifier();
	public void setSoundNotifier(ISoundNotifier pNotifier);
	public Sound getSoundByName(String pPath);
}
